package com.yida.gwj.expend.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.yida.gwj.api.domain.GwjConfFlow;
import com.yida.gwj.api.domain.GwjMaintenanceFundsBusinessInner;
import com.yida.gwj.expend.domain.GwjMaintenanceFundsBusiness;
import com.yida.gwj.expend.domain.dto.CostListDTO;
import com.yida.gwj.expend.domain.dto.FilingCertificateDTO;
import com.yida.gwj.expend.domain.dto.GwjMaintenanceFundsBusinessListDTO;
import com.yida.gwj.expend.domain.request.GwjMaintenanceFundsBusinessListRequest;
import com.yida.gwj.expend.domain.request.GwjMaintenanceFundsBusinessRequest;

/**
 * 公维金维修资金业务Mapper接口
 *
 * @author lgp
 * @date 2023-02-20
 */
@Mapper
public interface GwjMaintenanceFundsBusinessMapper {
    /**
     * 查询公维金维修资金业务
     *
     * @param bizId 公维金维修资金业务主键
     * @return 公维金维修资金业务
     */
    public GwjMaintenanceFundsBusiness selectGwjMaintenanceFundsBusinessByBusinessId(Long bizId);

    /**
     * 查询业务流程
     *
     * @param flowId 业务流程主键
     * @return 业务流程
     */
    public GwjConfFlow selectGwjConfFlowByFlowId(Long flowId);

    /**
     * 查询公维金维修资金业务列表
     *
     * @param maintenanceFundsBusinessListRequest 公维金维修资金业务
     * @return 公维金维修资金业务集合
     */
    public List<GwjMaintenanceFundsBusinessListDTO> getGwjMaintenanceFundsBusinessList(GwjMaintenanceFundsBusinessListRequest maintenanceFundsBusinessListRequest);

    /**
     * 查询公维金维修资金业务列表
     *
     * @param gwjMaintenanceFundsBusiness 公维金维修资金业务
     * @return 公维金维修资金业务集合
     */
    public List<GwjMaintenanceFundsBusiness> selectGwjMaintenanceFundsBusinessList(GwjMaintenanceFundsBusiness gwjMaintenanceFundsBusiness);

    /**
     * 新增公维金维修资金业务
     *
     * @param gwjMaintenanceFundsBusiness 公维金维修资金业务
     * @return 结果
     */
    public int insertGwjMaintenanceFundsBusiness(GwjMaintenanceFundsBusiness gwjMaintenanceFundsBusiness);

    /**
     * 修改公维金维修资金业务
     *
     * @param gwjMaintenanceFundsBusiness 公维金维修资金业务
     * @return 结果
     */
    public int updateGwjMaintenanceFundsBusiness(GwjMaintenanceFundsBusiness gwjMaintenanceFundsBusiness);

    /**
     * 查询公维金维修资金业务
     *
     * @param maintenanceFundsBusinessRequest 公维金维修资金业务主键
     * @return 公维金维修资金业务
     */
    public GwjMaintenanceFundsBusiness getGwjMaintenanceFundsBusiness(GwjMaintenanceFundsBusinessRequest maintenanceFundsBusinessRequest);

    // /**
    // * 查询流程列表
    // *
    // * @param gwjMaintenanceFundsBusinessFlowRequest 请求参数
    // * @return 结果
    // */
    // List<GwjMaintenanceFundsBusinessFlowDTO> selectGwjMaintenanceFundsFlowList(GwjMaintenanceFundsBusinessFlowRequest
    // gwjMaintenanceFundsBusinessFlowRequest);

    /**
     * 分摊费用清册列表
     *
     * @param bizId 业务标识
     * @return {@link CostListDTO}
     */
    public List<CostListDTO> costList(Long bizId);

    /**
     * 打印备案证明
     *
     * @param bizId 业务标识
     * @return {@link FilingCertificateDTO}
     */
    FilingCertificateDTO printFilingCertificate(Long bizId);

    /**
     * 内部获取公维金维修资金业务
     * 
     * @param bizId 业务主键
     * @return
     */
    GwjMaintenanceFundsBusinessInner innerGetInfo(Long bizId);

    // ---------------------------------------新增功能区 hmh start--------------------------------------------------
    /**
     * 新增公维金维修资金业务 20230714
     * 
     * @param gwjMaintenanceFundsBusiness
     * @return
     */
    int insertGwjMaintenanceFundsBusinessCustom(GwjMaintenanceFundsBusiness gwjMaintenanceFundsBusiness);

    /**
     * 修改公维金维修资金业务 20230714
     * 
     * @param gwjMaintenanceFundsBusiness
     * @return
     */
    int updateGwjMaintenanceFundsBusinessCustom(GwjMaintenanceFundsBusiness gwjMaintenanceFundsBusiness);
    // ---------------------------------------新增功能区 hmh end--------------------------------------------------
}
